The present invention, in some embodiments thereof, relates to user modeling, and, more specifically, but not exclusively, to user modeling employing component based approach.
As systems' complexity increases the need for modeling tools, services and/or frameworks becomes more evident. Current systems, tools and/or tools for creating user models (representing one or more users) usually are based on proprietary concepts, allowing a developer of the user model to develop user models (UM) in an ad-hoc manner for the following main reasons:    (i) System developers focus on specific characteristics of their users in order to deliver a specific service.    (ii) The user modeling community does not have commonly accepted standards and/or frameworks for user model development and/or user model structure.    (iii) User model components, i.e. user model building blocks are not publicly shared for reuse.    (iv) Developing a standard user model that holds a comprehensive set of attributes requires a major effort to be carried out in by a single organization, facility and/or vendor.
As the user modeling research advanced it suggested moving away from complete monolithic solutions and/or user modeling ontological representations towards partial and/or dynamic solutions providing modular architectures supported by mediation techniques to support some level of interoperability.
One modular approach is component based development which supports development of complex user models by dividing them into independent components. Component-based development approach focuses on sharing and reusing components which potentially improve efficiency of system design and development. A component may be represented as an abstract box that encapsulates its properties and/or processing. The component may hold information, be sensitive to events and context, and supply services, which are constrained by conditions.